I am trying to get the list of documents from a collection but having the out-of-range error. You can see the function that returns the list and the output afterward.
Future<List> getPreAppliedUserList() async {
try {
List? userList = [""];
QuerySnapshot querySnapshot =
await _db!.collection(_preAppliedUserCollection).get();
List allData = querySnapshot.docs.map((doc) => doc.data()).toList();
print(allData.length); /// 2
for (int i = 0; i <= allData.length; i++) {
userList[i] = await allData[i]['customerNumber'];
}
return userList;
} on FirebaseException {
print("getPreAppliedUserList error");
var x; ///todo
return x;
}
}
Error:
Error: RangeError (index): Index out of range: index should be less than 1: 1
Arrays are 0-indexed, and the allData.length is of length 2. Therefore you should use:
for (int i = 0; i < allData.length; i++) {
userList[i] = await allData[i]['customerNumber'];
}
which means remove the <= and replace it with < since you don't have an item with index 2